package com.edu.chongdian.viewmodels;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.widget.Toast;

import com.edu.chongdian.MainActivity;
import com.edu.chongdian.databinding.ActivitySignInBinding;
import com.edu.chongdian.model.User;

import cn.leancloud.LCUser;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;

public class SignInViewModel {
    public User user;
    public Context context;
    public SharedPreferences sp;
    public SignInViewModel(Context context, ActivitySignInBinding binding){
        this.context=context;
        user=new User();
        sp = context.getSharedPreferences("login_info",context.MODE_PRIVATE);
        binding.setViewModel1(this);
    }
    public void signIn(){
        String accountValue = user.username.get();
        String passwordValue = user.password.get();
        // 创建实例
        LCUser user = new LCUser();

        user.setUsername(accountValue);
        user.setPassword(passwordValue);
        //注册操作
        user.signUpInBackground().subscribe(new Observer<LCUser>() {
            public void onSubscribe(Disposable disposable) {}
            public void onNext(LCUser user) {
                // 注册成功
                //注册成功将账号密码存到本地
                SharedPreferences.Editor editor = sp.edit();
                editor.putString("account", accountValue.trim());
                editor.putString("password", passwordValue.trim());
                editor.apply();
                Toast.makeText(context, "注册成功", Toast.LENGTH_SHORT).show();
                //成功后自动跳转到主页面
                Intent intent=new Intent(context, MainActivity.class);
                //Intent.FLAG_ACTIVITY_CLEAR_TASK 和 Intent.FLAG_ACTIVITY_NEW_TASK
                // 标志告诉系统清空任务栈并创建一个新的任务，
                // Intent.FLAG_ACTIVITY_CLEAR_TOP 标志确保新的 Activity 能够成为栈顶元素。
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                context.startActivity(intent);

            }
            public void onError(Throwable throwable) {
                // 注册失败（通常是因为用户名已被使用）
                Toast.makeText(context, "注册失败，用户名已被使用", Toast.LENGTH_SHORT).show();
            }
            public void onComplete() {}
        });
    }
}
